﻿/// <reference path='jquery-1.3.2-vsdoc2.js' />
$.ajaxSetup({ global: false, async: false });

$(function() {
    init();

    $("#txtCity").bind("focus", cityChoose.focus);
    //$("#txtCity").bind("blur", cityChoose.hide);
    $("#btnClose").bind("click", cityChoose.hide);

    if ($("#hdnI0sPostBack").val().toLowerCase() == "true") {
        $(":text").each(function() {
            $(this).triggerHandler("change");
        });
        $("#hdnI0sPostBack").val("false");
    }
})

var errorItem = ["", "", "", ""];
var errors = ["账户格式不正确", "密码格式不正确", "两次密码输入不一致！", "账户已存在", "昵称格式不正确"];
function init() {
    var divName = "regItem";
    for (var i = 0; i < 4; i++) {
        var divs = $("#" + divName + i + ">div");
        $(divs[1].firstChild).bind("focus", { tip: divs[2], error: divs[3] }, function(event) {
            if ($(event.data.error).css("display") == "none")
                $(event.data.tip).attr("class", "regTipShow");
        });

        $(divs[1].firstChild).bind("blur", { index: divs[2] }, function(event) {
            $(event.data.index).attr("class", "regTip");
        });

        $("#" + divName + i + ">div>input").each(function() {
            $(this).bind("change", { index: i, right: divs[3] }, function(event) {
                var txt = this.value;
                if (txt == "") {
                    event.data.right.style.display = "none";
                    return;
                }

                var i = event.data.index;
                var right = event.data.right;
                $(right).css("display", "block");
                if (i == 0 || i == 1) {
                    var re = /^[a-z][a-z0-9]{5,11}$/i;
                    if (!re.test(txt)) {
                        errorItem[i] = errors[i];
                        $(right).html(errorItem[i]);
                        return;
                    } else {
                        if (i == 0) {
                            $(right).html("Loading...");
                            $.get("../ashx/regHandler.ashx?time=" + new Date(), { memberName: txt }, function(data) {
                                errorItem[0] = errors[data];
                                if (data != -1) {
                                    $(right).html(errorItem[0]);
                                    return;
                                }
                            });
                        }
                        errorItem[i] = "ok";
                        $(right).html(" <img src=\"../css/right.gif\" alt=\"\" />");

                        if (i == 1) {
                            $("#txtConfirmPwd").triggerHandler("change");
                        }
                    }
                }
                else if (i == 2) {
                    if (txt != $("#txtPwd").val()) {
                        errorItem[i] = errors[i];
                        $(right).html(errorItem[i]);
                        return;
                    } else {
                        errorItem[i] = "ok";
                        $(right).html(" <img src=\"../css/right.gif\" alt=\"\" />");
                    }
                }
                else if (i == 3) {
                    var rx = /^[a-z0-9]$/i;
                    var rx1 = /^[\u4e00-\u9fa5]$/;
                    var length = 0;
                    for (var j = 0; j < txt.length; j++) {
                        if (rx.test(txt.charAt(j))) {
                            length++;
                        }
                        else if (rx1.test(txt.charAt(j))) {
                            length += 2;
                        }
                        else {
                            length = 0;
                            break;
                        }
                    }
                    if (length < 4 || length > 12) {
                        errorItem[i] = errors[4];
                        $(right).html(errorItem[i]);
                        return;
                    }
                    errorItem[i] = "ok";
                    $(right).html(" <img src=\"../css/right.gif\" alt=\"\" />");
                }
            })
        });
    }
}

function Check() {
    var inputs = $("#regDiv input");
    for (var i = 0; i < 4; i++) {
        if (inputs[i].value == "" || errorItem[i] != "ok") {
            alert("请正确填写信息");
            inputs[i].focus();
            return false;
        }
    }

    if ($("#txtCity").val() == "") {
        alert("请正确填写信息");
        $("#txtCity")[0].focus();
        return false;
    }

    if ($("#txtVerify").val() == "") {
        alert("请正确填写信息");
        $("#txtVerify")[0].focus();
        return false;
    }

    if (!$("#cbxService")[0].checked) {
        alert("只有同意协议才可以注册");
        return false;
    }
    return true;
}

function Show() {
    //$("#regDiv").hide();
    $("#layer").show();
    $("#regSuccess").css({ "top": "10px", "left": "20px" });
    $("#regSuccess").show();
}


function Hashtable() {
    this._hash = new Object();
    //add()
    this.add = function(key, value) {
        if (typeof (key) != "undefined") {
            if (this.contains(key) == false) {
                this._hash[key] = typeof (value) == "undefined" ? null : value;
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
    //remove()
    this.remove = function(key) { delete this._hash[key]; }
    //count
    this.count = function() { var i = 0; for (var k in this._hash) { i++; } return i; }
    //errorItem
    this.errorItem = function(key) { return this._hash[key]; }
    //contains
    this.contains = function(key) { return typeof (this._hash[key]) != "undefined"; }
    //clear
    this.clear = function() { for (var k in this._hash) { delete this._hash[k]; } }
}

var cityHT;

function addData() {
    cityHT = new Hashtable();
    cityHT.add("安徽", "合肥,芜湖,蚌埠,马鞍山,淮北,铜陵,安庆,黄山,滁州,宿州,池州,淮南,巢湖,阜阳,六安,宣城,亳州");
    cityHT.add("北京", "北京");
    cityHT.add("重庆", "重庆");
    cityHT.add("福建", "福州,厦门,莆田,三明,泉州,漳州,南平,龙岩,宁德");
    cityHT.add("甘肃", "兰州,嘉峪关,金昌,白银,天水,酒泉,张掖,武威,定西,陇南,平凉,庆阳,临夏,甘南");
    cityHT.add("广东", "广州,深圳,珠海,汕头,东莞,中山,佛山,韶关,江门,湛江,茂名,肇庆,惠州,梅州,汕尾,河源,阳江,清远,潮州,揭阳,云浮");
    cityHT.add("广西自治区", "南宁,柳州,桂林,梧州,北海,防城港,钦州,贵港,玉林,南宁地区,柳州地区,贺州,百色,河池");
    cityHT.add("贵州", "贵阳,六盘水,遵义,安顺,铜仁,黔西南,毕节,黔东南,黔南");
    cityHT.add("海南", "海南");
    cityHT.add("河北", "石家庄,邯郸,邢台,保定,张家口,承德,廊坊,唐山,秦皇岛,沧州,衡水");
    cityHT.add("黑龙江", "哈尔滨,齐齐哈尔,牡丹江,佳木斯,大庆,绥化,鹤岗,鸡西,黑河,双鸭山,伊春,七台河,大兴安岭");
    cityHT.add("河南", "郑州,开封,洛阳,平顶山,安阳,鹤壁,新乡,焦作,濮阳,许昌,漯河,三门峡,南阳,商丘,信阳,周口,驻马店,济源");
    cityHT.add("湖北", "武汉,宜昌,荆州,襄樊,黄石,荆门,黄冈,十堰,恩施,潜江,天门,仙桃,随州,咸宁,孝感,鄂州");
    cityHT.add("湖南", "长沙,常德,株洲,湘潭,衡阳,岳阳,邵阳,益阳,娄底,怀化,郴州,永州,湘西,张家界");
    cityHT.add("江西", "南昌市,景德镇,九江,鹰潭,萍乡,新馀,赣州,吉安,宜春,抚州,上饶");
    cityHT.add("江苏", "南京,镇江,苏州,南通,扬州,盐城,徐州,连云港,常州,无锡,宿迁,泰州,淮安");
    cityHT.add("吉林", "长春,吉林,四平,辽源,通化,白山,松原,白城,延边");
    cityHT.add("辽宁", "沈阳,大连,鞍山,抚顺,本溪,丹东,锦州,营口,阜新,辽阳,盘锦,铁岭,朝阳,葫芦岛");
    cityHT.add("内蒙古自治区", "呼和浩特,包头,乌海,赤峰,呼伦贝尔盟,阿拉善盟,哲里木盟,兴安盟,乌兰察布盟,锡林郭勒盟,巴彦淖尔盟,伊克昭盟");
    cityHT.add("宁夏自治区", "银川,石嘴山,吴忠,固原");
    cityHT.add("青海", "西宁,海东,海南,海北,黄南,玉树,果洛,海西");
    cityHT.add("山东", "济南,青岛,淄博,枣庄,东营,烟台,潍坊,济宁,泰安,威海,日照,莱芜,临沂,德州,聊城,滨州,菏泽");
    cityHT.add("上海", "上海");
    cityHT.add("山西", "太原,大同,阳泉,长治,晋城,朔州,吕梁,忻州,晋中,临汾,运城");
    cityHT.add("陕西", "西安,宝鸡,咸阳,铜川,渭南,延安,榆林,汉中,安康,商洛");
    cityHT.add("四川", "成都,绵阳,德阳,自贡,攀枝花,广元,内江,乐山,南充,宜宾,广安,达川,雅安,眉山,甘孜,凉山,泸州");
    cityHT.add("天津", "天津");
    cityHT.add("云南", "昆明,大理,曲靖,玉溪,昭通,楚雄,红河,文山,思茅,西双版纳,保山,德宏,丽江,怒江,迪庆,临沧");
    cityHT.add("浙江", "杭州,宁波,温州,嘉兴,湖州,绍兴,金华,衢州,舟山,台州,丽水");
    cityHT.add("自治区", "乌鲁木齐,石河子,克拉玛依,伊犁,巴音郭勒,昌吉,克孜勒苏柯尔,克孜,博尔塔拉,吐鲁番,哈密,喀什,和田,阿克苏");
    cityHT.add("西藏自治区", "拉萨,日喀则,山南,林芝,昌都,阿里,那曲");
    cityHT.add("澳门特别行政区", "澳门");
    cityHT.add("香港特别行政区", "香港");
    cityHT.add("台湾", "台湾");
}

var cityChoose = {
    inited: false,
    init: function() {
        addData();
        cityChoose.inited = true;
    },
    focus: function() {
        if (!cityChoose.inited) {
            cityChoose.init();
        }

        var h = $("#province").html();
        if ($.trim(h) == "") {
            $("#province").html(cityChoose.getProvinve());
        }
        cityChoose.show();
        $("#city").hide();
    },
    getProvinve: function() {
        var p = "";
        for (var key in cityHT._hash) {
            p += "<span><a href=\"javascript:void(0)\" onclick=\"cityChoose.getCity('" + key + "')\" >" + key + "</a></span>";
        }
        return p;
    },
    getCity: function(p) {
        $("#city").show();
        if (p == "上海" || p == "北京" || p == "重庆" || p == "台湾" || p == "香港特别行政区" || p == "澳门特别行政区" || p == "天津") {
            cityChoose.setValue(cityHT._hash[p]);
            return;
        }
        var cs = cityHT._hash[p].split(',');
        var c = "";
        for (var i = 0; i < cs.length; i++) {
            c += "<span><a href=\"javascript:void(0)\" onclick=\"cityChoose.setValue('" + cs[i] + "')\">" + cs[i] + "</a></span>";
        }

        $("#city").html(c);
    },
    setValue: function(value) {
        $("#txtCity").val(value);
        cityChoose.hide();
    }
    ,
    hide: function() {
        $("#pcity").hide();
    },
    show: function() {
        var tp = $("#txtCity").offset();
        var top = tp.top + 20;
        var left = tp.left-40;
        $("#pcity").css({ top: top, left: left });
        $("#pcity").show();
    }
}



